The High-Definition Multimedia Interface (HDMI) is an uncompressed, all-digital audio/video interface. HDMI provides an interface between any compatible digital AV source, such as a set-top box, a DVD player, or an A/V receiver and a compatible digital audio and/or video monitor, such as a digital television.
Further developments of the HDMI standard are being made, in particular for providing wireless HDMI connections and also optical HDMI connections. In a conventional system, a number of devices are interconnected by physical HDMI leads, and write and read back operations occur over the connection without delay. However, when a wireless or optical connection is used, the physical wires effectively become ‘decoupled’, which means that there is a delay between a write operation on the transmit side and a read back operation as a result of the write operation.
This is not a problem for the transmission of audio and/or video data over a HDMI connection, as this transmission is unidirectional and does not require fast feedback from the destination to the source. In some cases, feedback may not be required at all. It is also not a problem for the transmission of I2C data, as although acknowledgement on every single byte is required, some delay can be tolerated by only reporting the acknowledgement of the recipient for the last byte of the transmission. In addition, the I2C bus has means for flow control via the so-called clock stretching.
However, the delay caused by decoupled connections is a problem for the transmission of Consumer Electronics Control (CEC) data. CEC is an optional protocol in a HDMI system which allows HDMI devices to pass on control functions to all or other devices in the system. These control functions can be originated by a remote control for one of the devices in the system, and can include one-touch play, system standby, one-touch record, timer programming, OSD and device menu control functions.
Although CEC data is transmitted at a relatively low bit rate, this protocol can use single byte messages, and feedback from the receiver is required effectively instantaneously after the last bit is transmitted. In addition, the CEC protocol does not have any flow control, and having different timing intervals between consecutive messages for new data and retry data increases the complexity.
If the CEC data is forwarded by a decoupled connection, it is necessary to wait for the returned acknowledgement, which means that the real-time requirements of the ack/nack message cannot be met. If the complete message was captured at the transmitter, forwarded to the receiver via the decoupled connection, and reproduced at the receiver, the message interaction between the transmitter and receiver will be affected and the real-time behaviour of the complete system will be changed.
Currently, single byte CEC messages are used for a logical address resolution protocol. The address resolution protocol relies on receiving proper acknowledgements, and unique addresses for devices are required for the active devices.